package com.manager.car.dao;

import java.util.List;

import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.springframework.orm.hibernate5.HibernateCallback;

import com.manager.car.po.Cars;
import com.manager.car.util.PageModel;

public class CarsDaoImpl extends BaseDao<Cars> implements ICarsDao {

	
	private PageModel<Cars> pageModel;
	
	public List<Cars> queryAll() {
		String hql="from Cars";
		return this.queryByHql(hql);
	}
	
	@SuppressWarnings({ "unchecked", "rawtypes" })
	public PageModel<Cars> queryall(final int pageNo ,final int pageSize) {
		 this.pageModel = (PageModel<Cars>)this.getHibernateTemplate().execute(new HibernateCallback() {
			 String hql="from Cars";
			public PageModel<Cars> doInHibernate(Session session) throws HibernateException {
				List<Cars> list = session.createQuery(hql)
						.setFirstResult((pageNo-1)*pageSize)
						.setMaxResults(pageSize)
						.list();
				List<Cars> counts = session.createQuery(hql).list();
				int totalCount = counts.size();
				pageModel.setCode(0);
				pageModel.setCount(totalCount);
				pageModel.setMsg("分页");
				pageModel.setData(list);
				return pageModel;
			}
		});
		return pageModel;
	}

	public PageModel<Cars> getPageModel() {
		return pageModel;
	}

	public void setPageModel(PageModel<Cars> pageModel) {
		this.pageModel = pageModel;
	}

	

}
